<?php

namespace app\common\model;

use think\facade\Db;

/**
 * 用户与角色的关联模型
 * 
 * 时间 ： 2020年4月10日20:51:23
 * 作者 ： 夏立军
 */
class UserAndRoleModel
{

    /**
     * 获取某个用户的所有角色
     * @param $uid 用户ID
     * @return array | NULL 对应的角色
     */
    public function get_user_role_info($uid)
    {
        $res = Db::name('user_role')->alias('a')
            ->join(['ams_role' => 'b'], 'a.rid=b.id')
            ->field('a.*,b.name,b.status')
            ->where('uid', $uid)->select();
        return $res;
    }

    /**
     * 添加一条数据
     * @param $aid 创建者ID
     * @param $uid 用户ID
     * @param $rid 角色ID
     * @return 是否添加成功
     */
    public function add_user_role(int $aid,int $uid,int $rid){
        $data['aid'] = $aid;
        $data['uid'] = $uid;
        $data['rid'] = $rid;
        $data['create_time'] = time();
        try {
            Db::name('user_role')->save($data);
        } catch (\Throwable $th) {
            return false;
        }
        return true;
    }

    /**
     * 删除一条数据
     * @param $id 用户与角色关联的ID
     * @return 是否成功
     */
    public function del_user_role($id){
        try {
            Db::name('user_role')->where('id',$id)->delete();
        } catch (\Throwable $th) {
            return false;
        }
        return true;
    }

    /**
     * 通过 用户ID 与 角色ID 获取一条数据
     * @param $uid 用户ID
     * @param $rid 角色ID
     * @return 获取到的数据
     */
    public function get_user_role_info_by_uid_and_rid(int $uid,int $rid){
        return Db::name('user_role')->where('uid',$uid)->where('rid',$rid)->find();
    }
}
